package com.bdqn.xiaomimall.product;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 工具类
 */
public class XM {
    public static void main(String[] args) throws Exception {
        System.out.println(isMobileNO("18534449559"));
    }
    /**
     * 转string
     * @param str
     * @return
     */
    public static String toString(Object str){
        return str.toString();
    }

    /**
     * 时间转字符串
     * @return
     */
    public static String DateToString(Date date){
        /*
         * G ：年代标志符
         * y ：年
         * M ：月
         * d ：日
         * h ：小时（12小时制）
         * H ：小时（24小时制）（0-23）
         * m ：分
         * s ：秒
         * S ：毫秒
         * E ：星期
         * D ：一年中的第几天
         * F ：一个月中的第几个星期
         * w ：一年中的第几周
         * W ：一个月中的第几周
         * k ：一天中的小时数（1-24）
         * K ：上午(am)/下午(pm)中的小时数（0-11）
         * z/Z ：时区
         */
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 将日期时间转换为指定的格式
        String format = sdf.format(date);
        System.out.println(format);
        return format;
    }

    /**
     * 获取当前项目当前目录的位置
     */
    public static String systemDir(){
        // 获取当前Java程序运行时，操作系统的名称
        String osName= System.getProperty("os.name");
        System.out.println(osName);		// Windows 10
        // 获取操作系统位数(os.arch 获取操作系统的架构)
        String arch = System.getProperty("os.arch");
        System.out.println(arch);
        // 获取操作系统当前正在使用的目录类路径
        String dir = System.getProperty("user.dir");
        System.out.println(dir);
        return dir;
    }

    /**
     *随机bai指定范围内N个不du重复的数
     *最简单zhi最基本的方法dao
     *min指定范围最小值
     */
    public static int[] randomCommon(int min, int max, int n){
        if (n > (max - min + 1) || max < min) {
            return null;
        }
        int[] result = new int[n];
        int count = 0;
        while(count < n) {
            int num = (int) (Math.random() * (max - min)) + min;
            boolean flag = true;
            for (int j = 0; j < n; j++) {
                if(num == result[j]){
                    flag = false;
                    break;
                }
            }
            if(flag){
                result[count] = num;
                count++;
            }
        }
        return result;
    }

    /**
     * 手机号验证
     * @param mobiles
     * @return
     */
    public static boolean isMobileNO(String mobiles) {
        Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(17[0-9])|(18[0-9]))\\d{8}$");
        Matcher m = p.matcher(mobiles);
        return m.matches();
    }
}
